Video compression refers to reducing the quantity of data used to represent video images and often combines image compression and motion compensation. A video codec is a device, or process implemented in software executed by a general purpose computing system (or in hardware by logic circuitry), that enables video compression and decompression for digital video. Traditionally, video codecs apply various spatial and temporal transforms (such as discrete cosine transforms and the like) on the two-dimensional frames that make up a video sequence in order to reduce the raw data that must be stored on a storage medium or transmitted across a network.
The Discrete Cosine Transform (DCT) is used widely in image or video processing and compression. For a first order Markov source with a large correlation coefficient, the DCT actually approximates the Karhunen-Loeve Transform (KLT), providing optimal or near optimal energy compaction performance for this type of source. Because common images are well modeled by such a source, the DCT has gained wide application in many image and video compression codecs and standards, such as H.264.
The popularity of the DCT in image processing has led to the design of a large number of fast approximations. These approximations can be put into two categories based on whether they form a true DCT approximation or not. For example, the BinDCT uses a lifting based factorization of the true DCT, and uses rounding to implement multiplications with arithmetic shift operations. The ICT used in H.264, however, is designed to be an easily implemented transform with good coding performance without specifically having a requirement to match the DCT basis.
Another common theme in the design of fast integer transforms is the concentration on power of 2 transform lengths—specifically 4, 8 and 16. There has been little investigation in fast integer approximations to the DCT for other lengths.